package com.cysyz.mylib.dao.engine;

/**
 * Created by jiaoyujia on 2015/2/9.
 */
public interface ClassMetadata {
    String getEntityName();


    String[] getPropertyNames();

    boolean[] getPropertyLaziness();

    boolean hasSubclasses();

    String getIdentifierPropertyName();

    boolean[] getPropertyNullability();


    int[] getNaturalIdentifierProperties();

    Object[] getPropertyValues(Object entity);

    int getVersionProperty();

    boolean isMutable();

    boolean isInherited();

    boolean hasIdentifierProperty();

    boolean isVersioned();

    boolean hasProxy();

    boolean hasNaturalIdentifier();

    Object getPropertyValue(Object object, String propertyName);

}
